package pr.vodafone.Test;

import java.util.List;

import pr.vodafone.dao.ClienteDAO;
import pr.vodafone.dao.FacturaDAO;
import pr.vodafone.dao.LineaDAO;
import pr.vodafone.dao.dto.Cliente;
import pr.vodafone.dao.dto.Factura;
import pr.vodafone.dao.dto.Linea;


public class Test {
	
	public static void main(String[] args) throws Exception {
		Test test= new Test();
		test.testCliente();
		test.testFacturas();
		test.testLineas();
	}
	
	public void testCliente() throws Exception{
		ClienteDAO clienteDAO = new ClienteDAO();
		
		//prueba de getClientes
		List<Cliente> clientes =clienteDAO.getClientes();
		System.out.println("===========================================================");
		System.out.println("Listado de clientes");
		for(int i=0; i<clientes.size();i++){
			System.out.println("DNI: "+clientes.get(i).getDni());
		}
		//prueba de getCliente
		System.out.println("===========================================================");		
		String dni="111";
		Cliente cli =clienteDAO.getCliente(dni);
		System.out.println("Cliente con dni '"+dni+"' se llama '"+cli.getNombre()+"'");
		cli.setNombre(cli.getNombre()+"1");
		//prueba de update de cliente
		clienteDAO.updateCliente(cli.getDni(), cli.getNombre(), cli.getDireccion(), cli.getEmail());
		cli =clienteDAO.getCliente(dni);
		System.out.println("Cliente con dni '"+dni+"' se llama '"+cli.getNombre()+"'");
		

	}
	
	public void testFacturas() throws Exception{
		FacturaDAO facturaDAO = new FacturaDAO();
		int idFactura=2;
		Factura factura= facturaDAO.getFactura(idFactura);
		System.out.println("===========================================================");
		System.out.println("El telefono de esta factura es "+factura.getTelefono()+ " y el importe "+ factura.getImporte());
		System.out.println("===========================================================");
		String telefono="666111222";
		List<Factura> facturasByLinea = facturaDAO.getFacturasByLinea(telefono);
		
		for(int i=0; i<facturasByLinea.size();i++){
			System.out.println("La factura con numero: "+facturasByLinea.get(i).getIdFactura()+" de la fecha "+facturasByLinea.get(i).getFecha()+" tiene un importe de "+facturasByLinea.get(i).getImporte());
		}
	}
	public void testLineas() throws Exception{
		LineaDAO lineaDAO = new LineaDAO();
		
		//prueba de getLinea
		System.out.println("===========================================================");
		String telefono="666111000";
		System.out.println("Get de la linea con numero de telefono: "+telefono);
		Linea linea=lineaDAO.getLinea(telefono);
		System.out.println(linea.toString());
		
		//prueba de get lineas
		System.out.println("===========================================================");
		System.out.println("Get de Todas las lineas");
		List <Linea> lineas=lineaDAO.getLineas();
		for(Linea lineaAux:lineas){
			System.out.println(lineaAux);
		}
		
		//Prueba lineas
		System.out.println("=========================Prueba update linea==================================");
		lineaDAO.updateLinea("123", "10", true, "10", "10", "10", "123");
		
		System.out.println("=========================Prueba getLineasByClienteAndEstado==================================");
		
		System.out.println("1.-");
		lineas = lineaDAO.getLineasByClienteAndEstado("123", true);
		for(int i=0; i<lineas.size();i++){
			System.out.println("Telefono linea: "+lineas.get(i).getTelefono());
		}
		
		System.out.println("2.-");
		lineas = lineaDAO.getLineasByClienteAndEstado("123", false);
		for(int i=0; i<lineas.size();i++){
			System.out.println("Telefono linea: "+lineas.get(i).getTelefono());
		}
		
		System.out.println("=========================Prueba getLineasByCliente==================================");
		lineas = lineaDAO.getLineasByCliente("123");
		for(int i=0; i<lineas.size();i++){
			System.out.println("Telefono linea: "+lineas.get(i).getTelefono());
		}
		
		System.out.println("=========================Prueba getLineasByEstado==================================");
		System.out.println("1.-");
		lineas = lineaDAO.getLineasByEstado(true);
		for(int i=0; i<lineas.size();i++){
			System.out.println("Telefono linea: "+lineas.get(i).getTelefono());
		}
		
		System.out.println("2.-");
		lineas = lineaDAO.getLineasByEstado(false);
		for(int i=0; i<lineas.size();i++){
			System.out.println("Telefono linea: "+lineas.get(i).getTelefono());
		}
	}
}
